#pragma once

#include<stdio.h>

//现在开始写C语言中fopen等等文件函数的模拟实现，此时用到了缓冲区以及之前学习的open函数等等的系统函数


#define Max 1024
#define NONE_FLUSH (1<<0)
#define LINE_FLUSH (1<<1)
#define FULL_FLUSH (1<<2)


typedef struct My_FILE
{
  int fileno;  //这个代表的是文件描述符
  int flag; //打开文件的方式
  char outbuffer[Max];  //缓冲区
  int bufferlen; //缓冲区的有效元素
  int flush_method; //刷新方式
}Myfile;


Myfile* Myopen(const char* path,const char* mode);
void  Myclose(Myfile* );
int Mywrite(Myfile* , void* str, int len);
void Myflush(Myfile*);
